<?php
/**
 * 内容管理
 *
 * @package         YDCMS
 * @author          QQ:644157559 <644157559@qq.com>
 * @version         $Id: ContentService.class.php v1.0 2014-06-13 17:27:03 $
 */
namespace Admin\Service;
class ContentService extends CommonService{
    
    /**
     * 保存数据
     * @param type $data
     * @return type
     */
    public function add($data) {
        $ContentModel = $this->getD();
        if(false === ($content = $ContentModel->create($data))){
            return $this->errorResultReturn($ContentModel->getError());
        }
        //var_dump($content);die;
        if(false === $ContentModel->add($content)){
            //echo $ContentModel->getLastSql();
            return $this->errorResultReturn('把数据保存到数据库主表 '. C("DB_PREFIX") .'content 时出错！');
        }
        $aid = $ContentModel->getLastInsID();
        return $this->resultReturn(true, $aid);
    }
    
    /**
     * 保存附加表数据
     * @param type $addtable
     * @param type $data
     */
    public function addTableData($addtable, $data) {
        if(empty($addtable)){
            return $this->errorResultReturn('附加表不存在！');
        }
        $addModel = M($addtable);
        if(false === ($addTableData = $addModel->create($data))){
            return $this->errorResultReturn($addModel->getError());
        }
        if(false === $addModel->add($addTableData)){
            return $this->errorResultReturn('把数据保存到数据库附加表 '. C("DB_PREFIX") . $addtable .' 时出错！');
        }
        return $this->resultReturn(true);
    }
    
    /**
     * 更新主表数据
     * @param type $data
     * @return type
     */
    public function update($data) {
        $ContentModel = $this->getD();
        if(false === ($content = $ContentModel->create($data))){
            return $this->errorResultReturn($ContentModel->getError());
        }
        if(false === $ContentModel->save($content)){
            //echo $ContentModel->getLastSql();
            return $this->errorResultReturn('把数据保存到数据库主表 '. C("DB_PREFIX") .'content 时出错！');
        }
        $aid = $content['id'];
        return $this->resultReturn(true, $aid);
    }
    
    public function upAddTableData($addtable, $data) {
        if(empty($addtable)){
            return $this->errorResultReturn('附加表不存在！');
        }
        $addModel = M($addtable);
        if(false === ($addTableData = $addModel->create($data))){
            return $this->errorResultReturn($addModel->getError());
        }
        if(false === $addModel->save($addTableData)){
            return $this->errorResultReturn('把数据保存到数据库附加表 '. C("DB_PREFIX") . $addtable .' 时出错！');
        }
        return $this->resultReturn(true);
    }
    /**
     * 删除主表数据
     * @param type $id
     */
    public function delete($id) {
        return $this->getM()->delete($id);
    }
    
    /**
     * 删除副表数据
     * @param type $id
     */
    public function deleteAddTable($addtable, $aid) {
        if(empty($addtable)){
            return false;
        }
        $addModel = M($addtable);
        return $addModel->where(array("aid" => $aid))->delete();
    }
    
    /**
     * 获取主表信息
     * @param type $aid
     * @return null
     */
    public function getById($aid) {
        $content = $this->getD()->relation(true)->getById($aid);
        if (empty($content)) {
            return null;
        }
        return $content;
    }
    
    /**
     * 根据指定条件获取数据
     * @param array $where
     * @param string $field
     * @return type
     */
    public function getAll(array $where, $field = "*") {
        $result = $this->getM()->field($field)->where($where)->select();
        return $result;
    }
    /**
     * 获取副表信息
     * @param type $addtable
     * @param type $aid
     * @return null
     */
    public function getAddtableData($addtable, $aid) {
        if(empty($addtable)){
            return null;
        }
        $addModel = M($addtable);
        return $addModel->where(array("aid" => $aid))->find();
    }
    protected function getModelName() {
        return 'Content';
    }
}
